/*******************************************************************************
 * FilePath    : \Software\Examples_Ble_MS1656\ble_app_peripheral_uart\Src\BSP\UART.h
 * Version     : 1.0
 * Brief       : 
 * Author      : AndrewHu
 * Company     : Shanghai MacroGiga Electronics CO.,Ltd
 * Email       : Hubinbo@macrogiga.com
 * Date        : 2020-04-03 15:06:14
 * LastEditors : AndrewHu
 * LastEditTime: 2021-05-10 15:33:26
 * Description : 
 ******************************************************************************/
#ifndef __UART_H__
#define __UART_H__
/* Includes ------------------------------------------------------------------*/
#include <Includes.h>
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define BaudRate_Def 115200
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function ----------------------------------------------------------*/

/*******************************************************************************
* Function   : UartRx_Int
* Parameter  : void
* Returns    : void
* Description:
* Note:      :      
*******************************************************************************/
void UartRx_Int(void);
/*******************************************************************************
* Function   : UartTx_Int
* Parameter  : void
* Returns    : void
* Description:
* Note:      : 
*******************************************************************************/
void UartTx_Int(void);
/*******************************************************************************
 * Function    : Uart_Send_Byte
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-03-24 18:28:52
 * Description : 串口发送一个字节
 ******************************************************************************/
void Uart_Send_Byte(u8 data);
/*******************************************************************************
 * Function    : Uart_Send_Byte2Ascii
 * Brief       : 
 * Parameter   : {u8} data-待发送数据
 * Returns     : 
 * Date        : 2020-03-24 18:30:09
 * Description : 串口发送一个字节（转换成ASCII）
 ******************************************************************************/
void Uart_Send_Byte2Ascii(u8 data);
/*******************************************************************************
 * Function    : Uart_Send_Array
 * Brief       : 
 * Parameter   : {u8*} data-待发送数组
 * Parameter   : {u8} len-数组长度
 * Returns     : 
 * Date        : 2020-03-24 18:30:47
 * Description : 发送一个数组（原始数据）
 ******************************************************************************/
void Uart_Send_Array(u8 *data, u8 len);
/*******************************************************************************
 * Function    : Uart_Send_Array_R
 * Brief       : 
 * Parameter   : {u8*} data-待发送数组
 * Parameter   : {u8} len-数组长度
 * Returns     : 
 * Date        : 2020-03-24 18:30:47
 * Description : 发送一个数组（原始数据），倒序
 ******************************************************************************/
void Uart_Send_Array_R(u8 *data, u8 len);
/*******************************************************************************
 * Function    : Uart_Send_Array2Ascii
 * Brief       : 
 * Parameter   : {u8*} data-待发送数组
 * Parameter   : {u8} len-数组长度
 * Parameter   : {u8} space-是否空格做间隔
 * Returns     : 
 * Date        : 2020-03-24 18:30:47
 * Description : 发送一个数组（转成ASCII）
 ******************************************************************************/
void Uart_Send_Array2Ascii(u8 *data, u8 len, u8 space);
/*******************************************************************************
 * Function    : Uart_Send_Array2Ascii_R
 * Brief       : 
 * Parameter   : {u8*} data-待发送数组
 * Parameter   : {u8} len-数组长度
 * Parameter   : {u8} space-是否空格做间隔
 * Returns     : 
 * Date        : 2020-03-24 18:30:47
 * Description : 发送一个数组（转成ASCII），倒序
 ******************************************************************************/
void Uart_Send_Array2Ascii_R(u8 *data, u8 len, u8 space);
/*******************************************************************************
 * Function    : Uart_Send_String
 * Brief       : 
 * Parameter   : {u8*} data-字符串或数组
 * Returns     : {u8} len-长度
 * Date        : 2020-03-24 18:48:47
 * Description : 发送一个字符串或数组
 ******************************************************************************/
void Uart_Send_String(u8 *data, u8 len);
/*******************************************************************************
 * Function    : GetBaudRate
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-03-25 15:16:44
 * Description : 
 ******************************************************************************/
u32 GetBaudRate(void);
/*******************************************************************************
 * Function    : SetBaudRate
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2021-05-08 19:36:55
 * Description : 
 ******************************************************************************/
void SetBaudRate(u32 rate);
/*******************************************************************************
 * Function    : GetUartTxFlag
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-03-25 15:16:44
 * Description : 获取串口发送状态
 ******************************************************************************/
u8 GetUartTxFlag(void);
/*******************************************************************************
 * Function    : GetUartStatus
 * Brief       : 获取串口工作状态
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-03-25 15:16:44
 * Description : 
 ******************************************************************************/
u8 GetUartStatus(void);
/*******************************************************************************
 * Function    : Fun_Uart_Run
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-03-24 19:02:19
 * Description : 串口执行
 ******************************************************************************/
void Fun_Uart_Run(void);
/* extern --------------------------------------------------------------------*/

#endif
